package concurrent

// 类似于Unix中的双向通道Channel，可以用来在线程中分享数据

func add(arr []int, channel chan int) {
	var sum int
	for _, a := range arr {
		sum += a
	}
	channel <- sum
}

func Channel(arr []int) (int, int) {
	c := make(chan int)

	go add(arr[0:len(arr)/2], c)
	go add(arr[len(arr)/2:], c)

	x, y := <-c, <-c
	return x, y
}
